package cn.patient.pp.module.fiveInOne.controller.admin.vo;

import cn.patient.pp.framework.desensitize.core.slider.annotation.IdCardDesensitize;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;

import java.time.LocalDate;
import java.util.*;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime;
import com.alibaba.excel.annotation.*;

@Schema(description = "管理后台 - 重点人员包保信息 Response VO")
@Data
@ExcelIgnoreUnannotated
public class KeyPersonProtectionRespVO {

    @Schema(description = "主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "20513")
    @ExcelProperty("主键")
    private Integer id;
    @Schema(description = "管理机构id", example = "23520")
    @ExcelProperty("管理机构")
    private String managementOrgName;

    @Schema(description = "管理机构id", example = "23520")
    @ExcelProperty("管理机构id")
    private Long deptId;

    @Schema(description = "患者姓名", example = "张三")
    @ExcelProperty("患者姓名")
    private String patientName;

    @Schema(description = "证件号码", requiredMode = Schema.RequiredMode.REQUIRED)
    @ExcelProperty("证件号码")
    @IdCardDesensitize
    private String idNumber;

    @Schema(description = "患者性别")
    @ExcelProperty("患者性别")
    private String gender;

    @Schema(description = "出生日期")
    @ExcelProperty("出生日期")
    private LocalDate birthDate;

    @Schema(description = "患者电话")
    @ExcelProperty("患者电话")
    private String phone;

    @Schema(description = "现住详细地址")
    @ExcelProperty("现住详细地址")
    private String currentAddress;

    @Schema(description = "监护人")
    @ExcelProperty("监护人")
    private String guardian;

    @Schema(description = "监护人电话")
    @ExcelProperty("监护人电话")
    private String contact;

    @Schema(description = "患者监护人关系")
    @ExcelProperty("患者监护人关系")
    private String guardianPatientRelationship;

    @Schema(description = "包保乡干部姓名", example = "张三")
    @ExcelProperty("包保乡干部姓名")
    private String townCadreName;

    @Schema(description = "包保乡干部电话")
    @ExcelProperty("包保乡干部电话")
    private String townCadrePhone;

    @Schema(description = "包保村干部姓名", example = "赵六")
    @ExcelProperty("包保村干部姓名")
    private String villageCadreName;

    @Schema(description = "包保村干部电话")
    @ExcelProperty("包保村干部电话")
    private String villageCadrePhone;

    @Schema(description = "包保民警姓名", example = "李四")
    @ExcelProperty("包保民警姓名")
    private String policeName;

    @Schema(description = "精防医生姓名", example = "芋艿")
    @ExcelProperty("精防医生姓名")
    private String doctorName;

    @Schema(description = "包保民警电话")
    @ExcelProperty("包保民警电话")
    private String policePhone;

    @Schema(description = "精防医生电话")
    @ExcelProperty("精防医生电话")
    private String doctorPhone;

    @Schema(description = "评定的风险等级")
    @ExcelProperty("评定的风险等级")
    private String riskAssessment;

    @Schema(description = "备注（2025年新评定录入人员请标注“2025”）", example = "你说的对")
    @ExcelProperty("备注（是否为2025年评定录入人员）")
    private String remark;

    @Schema(description = "创建时间")
    @ExcelProperty("创建时间")
    private LocalDateTime createTime;

}